package net.jlibrary.group.action.vo;

import java.io.Serializable;
import java.util.Date;

import net.jlibrary.common.CoreConstants;
import net.jlibrary.common.core.entity.BaseVo;
import net.jlibrary.common.core.annotation.VoForPo;
import net.jlibrary.group.domain.ParkingPlace;
import net.jlibrary.group.domain.Area;
import net.jlibrary.group.domain.ParkingPlaceType;
import net.jlibrary.group.domain.Merchant;
import net.jlibrary.common.project.domain.Group;


import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

@VoForPo(ParkingPlace.class)
public class ParkingPlaceAdminActionVo extends BaseVo {
	private static final long serialVersionUID = -9051354145997328794L;
	private Long id;
	private AreaVo area;
	private String address;
	private double longitude;
	private double latitude;
	private int totalFixedspaces;
	private ParkingPlaceTypeVo type;
	private MerchantVo merchant;
	private String platePrefix;
	private String code;
	private GroupVo parentGroup;
	private String fullName;
	private String shortName;
	private boolean valid;
	private String loginMode;

	@DateTimeFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT)
	@JsonFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT, timezone = CoreConstants.DATE_TIMEZONE_DEFAULT)
	private Date createdate;
	@DateTimeFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT)
	@JsonFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT, timezone = CoreConstants.DATE_TIMEZONE_DEFAULT)
	private Date lastdate;
	
	public ParkingPlaceAdminActionVo() {
		area = new AreaVo();
		type = new ParkingPlaceTypeVo();
		merchant = new MerchantVo();
		parentGroup = new GroupVo();
	}

	public Long getId() {
		return id;
	}
	@Override
	public Serializable getPrimaryKey() {
		return id;
	}
	@Override
	public Serializable getText() {
		return shortName;
	}
	public void setId(Long id) {
		this.id = id;
	}

	public AreaVo getArea() {
		return area;
	}
	public void setArea(AreaVo area) {
		this.area = area;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public double getLongitude() {
		return longitude;
	}
	public void setLongitude(double longitude) {
		this.longitude = longitude;
	}
	public double getLatitude() {
		return latitude;
	}
	public void setLatitude(double latitude) {
		this.latitude = latitude;
	}
	public int getTotalFixedspaces() {
		return totalFixedspaces;
	}
	public void setTotalFixedspaces(int totalFixedspaces) {
		this.totalFixedspaces = totalFixedspaces;
	}
	public ParkingPlaceTypeVo getType() {
		return type;
	}
	public void setType(ParkingPlaceTypeVo type) {
		this.type = type;
	}
	public MerchantVo getMerchant() {
		return merchant;
	}
	public void setMerchant(MerchantVo merchant) {
		this.merchant = merchant;
	}
	public String getPlatePrefix() {
		return platePrefix;
	}
	public void setPlatePrefix(String platePrefix) {
		this.platePrefix = platePrefix;
	}
	public String getCode() {
		return code;
	}
	public void setCode(String code) {
		this.code = code;
	}
	public GroupVo getParentGroup() {
		return parentGroup;
	}
	public void setParentGroup(GroupVo parentGroup) {
		this.parentGroup = parentGroup;
	}
	public String getFullName() {
		return fullName;
	}
	public void setFullName(String fullName) {
		this.fullName = fullName;
	}
	public String getShortName() {
		return shortName;
	}
	public void setShortName(String shortName) {
		this.shortName = shortName;
	}
	public boolean getValid() {
		return valid;
	}
	public void setValid(boolean valid) {
		this.valid = valid;
	}
	public String getLoginMode() {
		return loginMode;
	}
	public void setLoginMode(String loginMode) {
		this.loginMode = loginMode;
	}

	
	public Date getCreatedate() {
		return createdate;
	}

	public void setCreatedate(Date createdate) {
		this.createdate = createdate;
	}

	public Date getLastdate() {
		return lastdate;
	}

	public void setLastdate(Date lastdate) {
		this.lastdate = lastdate;
	}
	
	@VoForPo(Area.class)
	public class AreaVo extends BaseVo {
		private static final long serialVersionUID = -1616200913601477125L;
		private Long id;
		private String name;
		private String code;
		private String description;
		private int taxis;
		private boolean valid;
		private boolean allowQueryInvalid;
		private boolean compellingDelete;
		private String parentIsNull;
		private String validString;
		@DateTimeFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT)
		@JsonFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT, timezone = CoreConstants.DATE_TIMEZONE_DEFAULT)
		private Date createdate;
		@DateTimeFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT)
		@JsonFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT, timezone = CoreConstants.DATE_TIMEZONE_DEFAULT)
		private Date lastdate;
		public Long getId() {
			return id;
		}
		@Override
		public Serializable getPrimaryKey() {
			return id;
		}
		@Override
		public Serializable getText() {
			return name;
		}
		public void setId(Long id) {
			this.id = id;
		}		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public String getCode() {
			return code;
		}
		public void setCode(String code) {
			this.code = code;
		}
		public String getDescription() {
			return description;
		}
		public void setDescription(String description) {
			this.description = description;
		}
		public int getTaxis() {
			return taxis;
		}
		public void setTaxis(int taxis) {
			this.taxis = taxis;
		}
		public boolean getValid() {
			return valid;
		}
		public void setValid(boolean valid) {
			this.valid = valid;
		}
		public boolean getAllowQueryInvalid() {
			return allowQueryInvalid;
		}
		public void setAllowQueryInvalid(boolean allowQueryInvalid) {
			this.allowQueryInvalid = allowQueryInvalid;
		}
		public boolean getCompellingDelete() {
			return compellingDelete;
		}
		public void setCompellingDelete(boolean compellingDelete) {
			this.compellingDelete = compellingDelete;
		}
		public String getParentIsNull() {
			return parentIsNull;
		}
		public void setParentIsNull(String parentIsNull) {
			this.parentIsNull = parentIsNull;
		}
		public String getValidString() {
			return validString;
		}
		public void setValidString(String validString) {
			this.validString = validString;
		}
		public Date getCreatedate() {
			return createdate;
		}
		public void setCreatedate(Date createdate) {
				this.createdate = createdate;
		}
		public Date getLastdate() {
			return lastdate;
		}
		public void setLastdate(Date lastdate) {
				this.lastdate = lastdate;
		}
	}

	@VoForPo(ParkingPlaceType.class)
	public class ParkingPlaceTypeVo extends BaseVo {
		private static final long serialVersionUID = -8241164022876253605L;
		private Long id;
		private String name;
		private String code;
		private String description;
		private int taxis;
		private boolean valid;
		private boolean allowQueryInvalid;
		private boolean compellingDelete;
		private String parentIsNull;
		private String validString;
		@DateTimeFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT)
		@JsonFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT, timezone = CoreConstants.DATE_TIMEZONE_DEFAULT)
		private Date createdate;
		@DateTimeFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT)
		@JsonFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT, timezone = CoreConstants.DATE_TIMEZONE_DEFAULT)
		private Date lastdate;
		public Long getId() {
			return id;
		}
		@Override
		public Serializable getPrimaryKey() {
			return id;
		}
		@Override
		public Serializable getText() {
			return name;
		}
		public void setId(Long id) {
			this.id = id;
		}		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public String getCode() {
			return code;
		}
		public void setCode(String code) {
			this.code = code;
		}
		public String getDescription() {
			return description;
		}
		public void setDescription(String description) {
			this.description = description;
		}
		public int getTaxis() {
			return taxis;
		}
		public void setTaxis(int taxis) {
			this.taxis = taxis;
		}
		public boolean getValid() {
			return valid;
		}
		public void setValid(boolean valid) {
			this.valid = valid;
		}
		public boolean getAllowQueryInvalid() {
			return allowQueryInvalid;
		}
		public void setAllowQueryInvalid(boolean allowQueryInvalid) {
			this.allowQueryInvalid = allowQueryInvalid;
		}
		public boolean getCompellingDelete() {
			return compellingDelete;
		}
		public void setCompellingDelete(boolean compellingDelete) {
			this.compellingDelete = compellingDelete;
		}
		public String getParentIsNull() {
			return parentIsNull;
		}
		public void setParentIsNull(String parentIsNull) {
			this.parentIsNull = parentIsNull;
		}
		public String getValidString() {
			return validString;
		}
		public void setValidString(String validString) {
			this.validString = validString;
		}
		public Date getCreatedate() {
			return createdate;
		}
		public void setCreatedate(Date createdate) {
				this.createdate = createdate;
		}
		public Date getLastdate() {
			return lastdate;
		}
		public void setLastdate(Date lastdate) {
				this.lastdate = lastdate;
		}
	}

	@VoForPo(Merchant.class)
	public class MerchantVo extends BaseVo {
		private static final long serialVersionUID = 1347335824535643013L;
		private Long id;
		private String linkman;
		private String tel;
		private String mobile;
		private String fax;
		private String email;
		private String memo;
		private String code;
		private String globalPath;
		private String fullName;
		private String shortName;
		private boolean valid;
		private boolean allowQueryInvalid;
		private boolean compellingDelete;
		private String loginMode;
		@DateTimeFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT)
		@JsonFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT, timezone = CoreConstants.DATE_TIMEZONE_DEFAULT)
		private Date createdate;
		@DateTimeFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT)
		@JsonFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT, timezone = CoreConstants.DATE_TIMEZONE_DEFAULT)
		private Date lastdate;
		public Long getId() {
			return id;
		}
		@Override
		public Serializable getPrimaryKey() {
			return id;
		}
		@Override
		public Serializable getText() {
			return shortName;
		}
		public void setId(Long id) {
			this.id = id;
		}		public String getLinkman() {
			return linkman;
		}
		public void setLinkman(String linkman) {
			this.linkman = linkman;
		}
		public String getTel() {
			return tel;
		}
		public void setTel(String tel) {
			this.tel = tel;
		}
		public String getMobile() {
			return mobile;
		}
		public void setMobile(String mobile) {
			this.mobile = mobile;
		}
		public String getFax() {
			return fax;
		}
		public void setFax(String fax) {
			this.fax = fax;
		}
		public String getEmail() {
			return email;
		}
		public void setEmail(String email) {
			this.email = email;
		}
		public String getMemo() {
			return memo;
		}
		public void setMemo(String memo) {
			this.memo = memo;
		}
		public String getCode() {
			return code;
		}
		public void setCode(String code) {
			this.code = code;
		}
		public String getGlobalPath() {
			return globalPath;
		}
		public void setGlobalPath(String globalPath) {
			this.globalPath = globalPath;
		}
		public String getFullName() {
			return fullName;
		}
		public void setFullName(String fullName) {
			this.fullName = fullName;
		}
		public String getShortName() {
			return shortName;
		}
		public void setShortName(String shortName) {
			this.shortName = shortName;
		}
		public boolean getValid() {
			return valid;
		}
		public void setValid(boolean valid) {
			this.valid = valid;
		}
		public boolean getAllowQueryInvalid() {
			return allowQueryInvalid;
		}
		public void setAllowQueryInvalid(boolean allowQueryInvalid) {
			this.allowQueryInvalid = allowQueryInvalid;
		}
		public boolean getCompellingDelete() {
			return compellingDelete;
		}
		public void setCompellingDelete(boolean compellingDelete) {
			this.compellingDelete = compellingDelete;
		}
		public String getLoginMode() {
			return loginMode;
		}
		public void setLoginMode(String loginMode) {
			this.loginMode = loginMode;
		}
		public Date getCreatedate() {
			return createdate;
		}
		public void setCreatedate(Date createdate) {
				this.createdate = createdate;
		}
		public Date getLastdate() {
			return lastdate;
		}
		public void setLastdate(Date lastdate) {
				this.lastdate = lastdate;
		}
	}

	@VoForPo(Group.class)
	public class GroupVo extends BaseVo {
		private static final long serialVersionUID = -3693508613643507359L;
		private Long id;
		private String code;
		private String globalPath;
		private String fullName;
		private String shortName;
		private boolean valid;
		private boolean allowQueryInvalid;
		private boolean compellingDelete;
		private String loginMode;
		@DateTimeFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT)
		@JsonFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT, timezone = CoreConstants.DATE_TIMEZONE_DEFAULT)
		private Date createdate;
		@DateTimeFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT)
		@JsonFormat(pattern = CoreConstants.DATETIME_FORMAT_DEFAULT, timezone = CoreConstants.DATE_TIMEZONE_DEFAULT)
		private Date lastdate;
		public Long getId() {
			return id;
		}
		@Override
		public Serializable getPrimaryKey() {
			return id;
		}
		@Override
		public Serializable getText() {
			return shortName;
		}
		public void setId(Long id) {
			this.id = id;
		}		public String getCode() {
			return code;
		}
		public void setCode(String code) {
			this.code = code;
		}
		public String getGlobalPath() {
			return globalPath;
		}
		public void setGlobalPath(String globalPath) {
			this.globalPath = globalPath;
		}
		public String getFullName() {
			return fullName;
		}
		public void setFullName(String fullName) {
			this.fullName = fullName;
		}
		public String getShortName() {
			return shortName;
		}
		public void setShortName(String shortName) {
			this.shortName = shortName;
		}
		public boolean getValid() {
			return valid;
		}
		public void setValid(boolean valid) {
			this.valid = valid;
		}
		public boolean getAllowQueryInvalid() {
			return allowQueryInvalid;
		}
		public void setAllowQueryInvalid(boolean allowQueryInvalid) {
			this.allowQueryInvalid = allowQueryInvalid;
		}
		public boolean getCompellingDelete() {
			return compellingDelete;
		}
		public void setCompellingDelete(boolean compellingDelete) {
			this.compellingDelete = compellingDelete;
		}
		public String getLoginMode() {
			return loginMode;
		}
		public void setLoginMode(String loginMode) {
			this.loginMode = loginMode;
		}
		public Date getCreatedate() {
			return createdate;
		}
		public void setCreatedate(Date createdate) {
				this.createdate = createdate;
		}
		public Date getLastdate() {
			return lastdate;
		}
		public void setLastdate(Date lastdate) {
				this.lastdate = lastdate;
		}
	}


}
